package com.han.fu.api.business.service;

import com.han.fu.api.business.model.ao.BindingAo;
import com.han.fu.api.business.model.ao.LoginAo;
import com.han.fu.api.business.model.ao.SecretAo;
import com.han.fu.api.business.model.vo.CurrentUserVo;
import com.han.fu.api.business.model.vo.LoginVo;

/**
 * 鉴权service接口
 *
 * @author: star.zhu
 * @date: 2021-07-31
 */
public interface IAuthService {

    /**
     * 密钥认证
     *
     * @param ao 密钥数据
     * @return LoginVo 认证数据
     */
    LoginVo secret(SecretAo ao);

    /**
     * 登陆认证
     *
     * @param ao 登陆数据
     * @return LoginVo 认证数据
     */
    LoginVo login(LoginAo ao);

    /**
     * 注销
     */
    void logout();

    /**
     * 获取当前登陆用户
     *
     * @return CurrentUserVo 当前用户数据
     */
    CurrentUserVo currentUser();

    /**
     * 用户绑定
     *
     * @param ao
     * @return
     */
    LoginVo bindingUser(BindingAo ao);
}
